(A) Field of the Invention
The present invention relates to a memory operation method, and more specifically, to an operation method of a non-volatile memory.
(B) Description of Related Art
For a non-volatile memory, a block including pages is a unit for erasing. Because the device of a non-volatile memory could include a plurality of channels, the page size of the plurality of channels may be large and the size or the length of a sequential writing command is near to the size of a logical page.
FIG. 1 illustrates a non-volatile memory system 10 of p channels controlled by a control chip 11. Each channel (ch 1 to ch p) may include one or more non-volatile memories. In order to enhance writing efficiency, plural channels could be used at the same time. However, for some non-volatile memories, e.g., an MLC memory, a complete page has to be written at one time. In such case, a complete page of each channel at the same location is written at the same time, and the size of a logical page is known as the “pagesize.” The pages 12 at the same location of all channels are considered collectively to be a logical page, whereas the blocks at the same location could be collected as a logical block. A non-volatile memory device may use some blocks mapping to logical block addresses (LBA) for writing sequential data.
As shown in FIG. 2, a host 20 may generate a write command to write data of a short length or the data may not be aligned with the beginning of the logical page; thus the data cannot be written to the non-volatile memory 24 directly, and a buffer 22, e.g., a DRAM, is used for collecting the data until the data can be written to a logical page of a non-volatile memory 24 (Path 1). If the amount of data is larger than or equal to a logical page and the writing position is the beginning of the logical page, the data will be written to the non-volatile memory 24 directly (Path 2).
However, many sequential writing commands do not start at the beginning of a logical page. As shown in FIG. 3, W128(8) denotes a 64K (128 sectors) write command starting from LBA 8. Because the writing command W128(8) does not start writing at the beginning of the logical page, W128(8) must be divided into two commands W120(8) and W8(128). In other words, data is written to 120 sections starting from LBA 8, and then the remaining data is written to 8 sectors starting from LBA 128. Because both W120(8) and W8(128) are less than 64K, the data is temporarily stored in the buffer 22 before being written the non-volatile memory 24. Until the buffer 22 collects sufficient data to be written to a logical page (e.g., 128 sectors), a writing command W128(0) is sent to the non-volatile memory 24. If the host 20 generates W128(0), the non-volatile memory 24 is programmed by W128(0) directly.
Likewise, every sequential write command of W128(8), i.e., W128(8+128), W128(8+256) . . . , goes to the buffer 22 before being programmed to the non-volatile memory 24. For example, W128(136) is divided into W120(136) and W8(256).
Accordingly, every command is divided into two commands and data has to be stored in the buffer temporarily. The data is written to the non-volatile memory until the data is collected to be the amount of a logical page. As a result, the writing efficiency is decreased, and the use of the buffer for temporarily storing data increases power consumption.